<?xml version='1.0' encoding='UTF-8' ?>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:rich="http://richfaces.org/rich"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:a4j="http://richfaces.org/a4j"
      xmlns:f="http://java.sun.com/jsf/core">
    <body>
        <ui:composition template="./main-template.xhtml">
            <ui:param name="titulo" value="Administración de Clientes" />
            <ui:define name="body">

                <a4j:form>
                    <center>
                        <h:panelGrid columns="2">
                            <a4j:commandLink value="Menú Principal" action="#{SecurityBean.goToMenuAdmin}" />
                            <a4j:commandLink value="Cerrar Sesión" action="#{SecurityBean.goToMenuLogin}" />
                        </h:panelGrid>
                    </center>
                </a4j:form>

                <rich:simpleTogglePanel id="stpEdicion" opened="true" >
                    <f:facet name="header" >
                        Administración de Clientes
                    </f:facet>
                    <a4j:form>
                        <h:panelGrid columns="3" >
                            <h:outputLabel value="Documento" />
                            <h:inputText value="#{ClienteBean.cliente.numeroDocumento}" />
                            <a4j:commandLink value="Buscar" action="#{ClienteBean.getClientesByDocumento}" reRender="tblClientes" />
                            <h:outputLabel value="Tipo Documento" />
                            <h:selectOneMenu value="#{ClienteBean.cliente.tipoDocumento}">
                                <f:selectItems value="#{ClienteBean.tiposDocumento}" />
                            </h:selectOneMenu>
                            <a4j:commandLink value="Buscar" action="#{ClienteBean.getClientesByTipo}" reRender="tblClientes" />
                            <h:outputLabel value="Nombre" />
                            <h:inputText value="#{ClienteBean.cliente.nombreCliente}" maxlength="20" />
                            <a4j:commandLink value="Buscar" action="#{ClienteBean.getClientesByNombre}" reRender="tblClientes" />
                            <h:outputLabel value="Email" />
                            <h:inputText value="#{ClienteBean.cliente.email}" />
                            <a4j:commandLink value="Buscar" action="#{ClienteBean.getClientesByEmail}" reRender="tblClientes" />
                        </h:panelGrid>
                        <h:panelGrid columns="6" >
                            <h:outputLabel value="Dirección" />
                            <h:inputTextarea value="#{ClienteBean.cliente.direccion}" rows="2" />
                            <h:outputLabel value="Teléfono residencia" />
                            <h:inputText value="#{ClienteBean.cliente.telefonoFijo}" />
                            <h:outputLabel value="Teléfono celular" />
                            <h:inputText value="#{ClienteBean.cliente.telefonoCelular}" />
                            <h:outputLabel value="Ciudad" />
                            <h:inputText value="#{ClienteBean.cliente.ciudad}" />
                            <h:outputLabel value="Departamento" />
                            <h:inputText value="#{ClienteBean.cliente.departamento}" />
                            <h:outputLabel value="Pais" />
                            <h:inputText value="#{ClienteBean.cliente.pais}" />
                            <h:outputLabel value="Profesión" />
                            <h:inputText value="#{ClienteBean.cliente.profesion}" />
                        </h:panelGrid>
                        <h:panelGrid columns="3">
                            <a4j:commandButton value="Nuevo"  type="reset" reRender="stpEdicion"/>
                            <a4j:commandButton value="Guardar" action="#{ClienteBean.add}" reRender="tblClientes,stpEdicion"  />
                            <a4j:commandButton value="Eliminar" action="#{ClienteBean.delete}" reRender="tblClientes,stpEdicion" />
                            <a4j:commandLink value="Mostar Todos" action="#{ClienteBean.getAllClientes}" reRender="tblClientes" />
                        </h:panelGrid>
                    </a4j:form>
                </rich:simpleTogglePanel>
                <rich:panel>
                    <a4j:form>
                        <rich:extendedDataTable id="tblClientes" height="360px" value="#{ClienteBean.clientes}" var="cl">
                            <rich:column width="150" filterBy="#{cl.numeroDocumento}" sortBy="#{cl.numeroDocumento}" label="Identificación">
                                <f:facet name="header">
                                    Documento
                                </f:facet>
                                #{cl.numeroDocumento}
                            </rich:column>
                            <rich:column>
                                <f:facet name="header">
                                    Nombre
                                </f:facet>
                                #{cl.nombreCliente}
                            </rich:column>
                            <rich:column width="250">
                                <f:facet name="header">
                                    Email
                                </f:facet>
                                #{cl.email}
                            </rich:column>
                            <rich:column>
                                <a4j:commandLink value="Eliminar" action="#{ClienteBean.delete}" reRender="tblClientes,stpEdicion">
                                    <a4j:actionparam name="ref" assignTo="#{ClienteBean.numeroDoc}" value="#{cl.numeroDocumento}"/>
                                </a4j:commandLink>
                            </rich:column>
                            <rich:column>
                                <a4j:commandLink value="Modificar" action="#{ClienteBean.getClienteByDocumento}" reRender="stpEdicion">
                                    <a4j:actionparam name="ref" assignTo="#{ClienteBean.numeroDoc}" value="#{cl.numeroDocumento}"/>
                                </a4j:commandLink>
                            </rich:column>
                        </rich:extendedDataTable>
                    </a4j:form>
                </rich:panel>
            </ui:define>
        </ui:composition>
    </body>
</html>